"""
面试题:元素的状态有哪些?
元素的状态:
1 是否可用  is_enabled()
2 是否可见  is_displayed()
3 是否可选择  is_selected()

对于元素不可见的,我们是怎么解决的?

不可见的隐藏元素是可以正常定位的，只是不能操作。如果想对其进行操作，
我们可以通过 js修改 display 的值，来实现修改元素的属性,我们selenium有执行js的方法

对于元素定位不到,你遇见过没有?
2 元素在页面内不可见, 解决办法:不可见的隐藏元素是可以正常定位的，只是不能操作。如果想对其进行操作，
我们可以通过 js修改 display 的值，来实现修改元素的属性,我们selenium有执行js的方法

"""
import os
import time


from selenium import webdriver
from selenium.webdriver.common.by import By
# os.environ["SE_DRIVER_MIRROR_URL"] = "https://msedgedriver.microsoft.com"
driver=webdriver.Edge()
driver.get("http://localhost:8081/regA.html")
# 是否可用   True:可用  false:不可用
# ele=driver.find_element(By.CSS_SELECTOR,"button:nth-child(1)")
# print(ele.is_enabled())
# 判断取消按钮  练习
# 代码 略

# 是否可见  元素不可见,我们是可以定位到的,但是获取不了他的文本值
ele2=driver.find_element(By.CSS_SELECTOR,"#sp1")
driver.execute_script("arguments[0].style.display='block'",ele2)


print("文本值:",ele2.text)
print("大小:",ele2.size)
print("属性:",ele2.get_attribute("name"))
print(ele2.is_displayed())
# 怎么获取到文本值?
# 需要通过js(javaScript)修改display的值, selenium中有执行js的方法


# 是否可选择  false :没有被选中  true:被选中
ele3=driver.find_element(By.CSS_SELECTOR,"#pga")
print(ele3.is_selected())




# 4 关闭浏览器驱动对象
time.sleep(10)  #代码暂停10s中
driver.quit()
